package com.waves.task.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.waves.core.web.domain.R;
import com.waves.core.web.domain.TableDataInfo;
import com.waves.task.domain.dto.TaskDTO;
import com.waves.task.domain.dto.TaskPageDTO;
import com.waves.task.domain.entity.Task;
import com.waves.task.domain.entity.TaskCopy;
import com.waves.task.domain.vo.TaskVO;

import java.util.List;

/**
 * 任务表;(task)表服务接口
 * @author : dlw
 * @date : 2024-9-18
 */
public interface TaskService extends IService<Task> {

    /**
     * 分页查询
     * @param dto
     * @return
     */
    TableDataInfo<TaskVO> listTaskPage(TaskPageDTO dto);

    /**
     * 通过ID查询单条数据
     *
     * @param  id
     * @return 实例对象
     */
    R<TaskVO> getTask(long id);

    /**
     * 新增数据
     *
     * @param dto 实例对象
     * @return 实例对象
     */
    R<Object> saveTask(TaskDTO dto);
    /**
     * 更新数据
     *
     * @param dto 实例对象
     * @return 实例对象
     */
    R<Object> updateTask(TaskDTO dto);
    /**
     * 通过主键删除数据
     *
     * @param id
     * @return 是否成功
     */
    R<Object> deleteTask(List<Long> ids);

    boolean likeTask(long id);

    boolean collectTask(long id);

    R<Object> updateTaskStatus(Integer type, long taskId,long operatorId);

    R<Object> updateTaskStatus2(Integer type, long taskId,long operatorId);

    R<List<TaskCopy>> testTask(Integer id);
}